<?php

namespace app\controllers;

use app\common\components\BaseWebController;
use app\common\services\applog\AppLogService;
use app\models\log\AppLog;
use yii\log\FileTarget;


class ErrorController extends BaseWebController
{
    public function actionError()
	{
	    //将错误信息记录到文件或者数据库
        //获取错误
        $errors=\Yii::$app->errorHandler->exception;
        $err_msg='';
        //var_dump($errors);
        if($errors){
            //获取发生错误的文件 行号 信息 错误码
            $file=$errors->getFile();
            $line=$errors->getLine();
            $message=$errors->getMessage();
            $code=$errors->getCode();

            //将错误信息放到文件中去
            $log=new FileTarget();
            $log->logFile=\Yii::$app->getRuntimePath().'/logs/errs.log';

            //定义错误信息输出格式
            $err_msg=$message." [file:{$file}][line:{$line}][code:$code][url:{$_SERVER['REQUEST_URI']}][POST_DATA:".http_build_query($_POST)."]";

            $log->messages[]=[
                $err_msg,
                1,
                'application',
                microtime(true)
            ];

            //将信息导入文件中去
            $log->export();

            //todu将错误信息写入数据库
            AppLogService::addErrorLog(\Yii::$app->id,$err_msg);

        }
       // $this->layout=false;
		return $this->render("error",['err_msg'=>$err_msg]);
        //return 'Error<br>错误信息：'.$err_msg;
	}
}
